package com.example.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.common.Vo.UserVO;
import com.example.entity.User;
import com.example.security.MyUserDetails;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author ptuDai
 * @since 2021-09-13
 */
@Component
public interface UserMapper extends BaseMapper<User> {
    MyUserDetails getUserDetailsByUserName(String userName);

    /**
     * <p>
     * 查询 : 根据关键字查询用户列表，分页显示
     * </p>
     *
     * @param page 分页对象,xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位(你可以继承Page实现自己的分页对象)
     * @param name  名字
     * @return 分页对象
     */
    IPage<UserVO> selectPageVo(IPage<?> page, @Param("name") String name, @Param("departmentId") Integer departmentId);

    UserVO getUserInfoByUserName(@Param("userName") String userName);

    List<User> listByMenuId(Integer menuId);

    String getUserNameById(Integer userId);

    Integer getIdByUserName(String userName);
}
